package com.xgz.bean.factorybean;

import com.xgz.bean.Hello;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;

/**
 * 工厂Bean
 * 1、普通bean 注册的就是 自己
 * 2、工厂bean： 注册的不是本类型，而是  MyFactory调用getObject 返回的对象。 类型是 这个方法返回的类型。
 * 3、MyFactoryBean 这个工厂Bean 使用Hello泛型，getObject 返回的就是hello组件
 * 3、Mybatis与Spring的整合就是这样做的，得到的是 SqlSessionFactoryBean
 * @author xgz
 */
@Component
public class MyFactoryBean implements FactoryBean<Hello> {

	@Override
	public Hello getObject() throws Exception {
		return null;
	}

	@Override
	public Class<?> getObjectType() {
		return Hello.class;
	}

	@Override
	public boolean isSingleton() {
		return Boolean.TRUE;
	}
}
